python 使用pandas.DataFrame.merge合并dataframe结果为空问题解决

您所在的位置:网站首页 python 合并表后 重复列 python 使用pandas.DataFrame.merge合并dataframe结果为空问题解决

python 使用pandas.DataFrame.merge合并dataframe结果为空问题解决

2024-07-02 01:04| 来源: 网络整理| 查看: 265

问题描述

使用python2的pandas合并两个datafreme时,结果为空。实际上两个表格有相同的数据,但是结果并没有合并。 官网:pandas.merge 在这里插入图片描述

使用代码 测试1:

两个数据表格,默认pandas读取数据格式pands.dtypes有差异,合并时无数据。

import pandas df1 = pandas.read_csv("data1.txt", sep='\t') df2 = pandas.read_csv("data2.txt", sep='\t') pandas.merge(df1, df2, on=['name', 'value1', 'value2']) df1.merge(df2, on=['name', 'value1', 'value2'])

在这里插入图片描述

测试2:

两个数据表格,默认pandas读取数据格式pands.dtypes相同,合并时有数据。

df1 = pandas.read_csv("data1a.txt", sep='\t') df2 = pandas.read_csv("data2a.txt", sep='\t') df1.dtypes df2.dtypes df1 df2 pandas.merge(df1, df2, on=['name', 'value1', 'value2']) df1.merge(df2, on=['name', 'value1', 'value2'])

在这里插入图片描述

测试3:

发现相同的数据类型合并没有问题,所以变更一下数据类型为object,两个数据统一后再合并。但是合并的数据仍是空。 在这里插入图片描述

测试4:

统一数据类型,把对应的数据类型改为str,不能是object,结果合并没有问题。 (思考:为什么str对应的object?) 在这里插入图片描述

总结

使用pandas合并数据前需要确认,合并依赖的key(on/left_on/right_on等)的数据类型是否一致,如果不一致,则需要使用dataframe.astype将对应的列数据的类型进行转换。

注意:dataframe.astype只是返回转换后的数据,不替换原来的数据。

其他发现: 测试1的数据中,发现合并过程中不会考虑去重。就是说:当有相同的索引(on),如果两个数据中都有重复,最终合并时,也会重复, 就是有4*4次。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3